#!/bin/bash
#这里可替换为你自己的执行程序，其他代码无需更改
APP_NAME=./df-server.jar
APP_PORT=9001
DUBUG_PORT=5001
cd `dirname $0`
#使用说明，用来提示输入参数
usage() {
    echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
    exit 1
}
#检查程序是否在运行
is_exist(){
  pid=`netstat -tnlp|grep ${APP_PORT}|awk '{print $7}'| awk '{split($0,arr,"/")} END {print arr[1]}'`
  #如果不存在返回1，存在返回0
  if [ -z "${pid}" ]; then
   return 1
  else
    return 0
  fi
}
 
#启动方法
start(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is already running. pid=${pid} ."
  else
   # nohup java  -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.rmi.port=6000 -Dcom.sun.management.jmxremote.port=6000  -Dcom.sun.management.jmxremote.ssl=false  -Dcom.sun.management.jmxremote.authenticate=false  -Djava.rmi.server.hostname=192.168.1.125  -Xmx512m -Xms512m -XX:MetaspaceSize=100m -XX:MaxMetaspaceSize=512m -Xss100m  -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/logs  -Xloggc:/home/logs/gc/gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps  -jar    $APP_NAME > Log.log  2>&1 &
  nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=${DUBUG_PORT} -Dfile.encoding=utf-8 -jar $APP_NAME > Log.log  2>&1 &
#nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=50055 -jar      $APP_NAME > Log.log  2>&1 &
 #nohup java  -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.rmi.port=6000 -Dcom.sun.management.jmxremote.port=6000  -Dcom.sun.management.jmxremote.ssl=false  -Dcom.sun.management.jmxremote.authenticate=false  -Djava.rmi.server.hostname=192.168.1.125   -Xmx1024m -Xms1024m -XX:MetaspaceSize=100m -XX:MaxMetaspaceSize=512m -Xss100m  -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/logs/oomtest.hprof  -XX:+PrintGCDetails -XX:+PrintGCTimeStamps  -jar    $APP_NAME > Log.log  2>&1 &
    echo "${APP_NAME} is start success"
    #tail -f fileserver-web.out
  fi
}
 
#停止方法
stop(){
  is_exist
  if [ $? -eq "0" ]; then
    kill -9 $pid
    echo "${APP_NAME} is  stoped"
  else
    echo "${APP_NAME} is not running"
  fi
}
 
#输出运行状态
status(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is running. Pid is ${pid}"
  else
    echo "${APP_NAME} is NOT running."
  fi
}
 
#重启
restart(){
  stop
  sleep 1
  start
}
 
#根据输入参数，选择执行对应方法，不输入则执行使用说明
case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  *)
    usage
    ;;
esac


